package com.wenx.v3system.modular.oauth.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * OAuth2令牌响应DTO
 * 
 * <p>封装OAuth2令牌交换和刷新操作的响应数据</p>
 * 
 * @author wenx
 * @since 1.0.0
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class OAuth2TokenResponseDto implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 访问令牌
     */
    private String accessToken;

    /**
     * 刷新令牌
     */
    private String refreshToken;

    /**
     * 令牌类型（通常为Bearer）
     */
    private String tokenType;

    /**
     * 令牌有效期（秒）
     */
    private Integer expiresIn;

    /**
     * 授权范围
     */
    private String scope;

    /**
     * 用户名
     */
    private String username;

    /**
     * 用户邮箱
     */
    private String email;

    /**
     * 用户姓名
     */
    private String name;

    /**
     * 用户唯一标识
     */
    private String subject;
} 